home *** CD-ROM | disk | FTP | other *** search
/ The Original Shareware 1.1 / The Original Shareware (WeMake CDs)(Volume 1.1)(CDs, Inc)(1993).iso / 6 / coreaids.zip / PUSHALL.ASM < prev    next >
Assembly Source File  |  1987-06-25  |  1KB  |  53 lines

  1. ;    DESC:    Push all registers (AX,BX,CX,DX,DS,ES,BP,DI,SI)      V1.00
  2. ;    SAMPLE:    PUSHALL
  3. ;    ##################################################################
  4.  
  5. PSH_POPS    Segment Para Common 'DATA'
  6.     DW    180 DUP(0)
  7. PSH_POPS    Ends
  8.  
  9. PUSHALLC    Segment
  10.     Assume CS:PUSHALLC,DS:NOTHING,ES:PSH_POPS
  11.     Public    PUSHALL
  12.  
  13.                         ;notice.
  14.     DB    'PUSHALL  - V1.00, Copyright 1987, CoreTechs   ',0DH,0AH
  15.  
  16. PUSHALL    Proc    Near
  17.     Pop    CS:WORD PTR[8]            ;store return address to
  18.                         ;calling procedure.
  19.     Pop    CS:WORD PTR[4]            ;store return address to
  20.                         ;procedure calling procedure.
  21.     Push    CS:WORD PTR[4]            ;restore addresses.
  22.     Push    CS:WORD PTR[8]
  23.  
  24.     Mov    CS:WORD PTR[0],SP        ;save stack pointer and
  25.     Mov    CS:WORD PTR[2],SS        ;stack segment.
  26.  
  27.     Mov    SP,PSH_POPS            ;load new stack segment
  28.     Mov    SS,SP                ;for temporary storage of all
  29.     Mov    SP,CS:WORD PTR[6]        ;registers.
  30.  
  31.     Push    CS:WORD PTR[4]            ;save main return address.
  32.     Push    AX                ;save all registers on
  33.     Push    BX                ;alternate stack.
  34.     Push    CX
  35.     Push    DX
  36.     Push    DS
  37.     Push    ES
  38.     Push    BP
  39.     Push    DI
  40.     Push    SI
  41.  
  42.     Mov    CS:WORD PTR[6],SP        ;store top of stack pointer.
  43.  
  44.     Mov    SP,CS:WORD PTR[0]        ;recover old stack.
  45.     Mov    SS,CS:WORD PTR[2]
  46.  
  47.     Ret    2                ;return to caller and dump
  48.                         ;additional return.
  49. PUSHALL    Endp
  50.  
  51. PUSHALLC    Ends
  52.     End
  53.